"""
使用自定义函数，完成对程序的模块化
客户信息包含：姓名、性别、手机号
该系统具有的功能：添加、删除、修改、显示、退出系统
设计思路：
提示用户选择功操作
获取用户选择的功能
根据用户的选择，分别调用不同的函数
"""
# 新建一个列表，用来保存客户的所有信息
cust_info = []
# 功能打印
def print_menu():
    print('=' * 30)
    print('客户管理系统')
    print('1.添加客户信息')
    print('2.删除客户信息')
    print('3.修改客户信息')
    print('4.显示所有客户信息')
    print('0.退出系统')
    print('=' * 30)

# 定义一个添加客户信息的函数
def add_cust_info():
    # 提示并获取客户的姓名
    new_name = input('请输入新客户的姓名:')
    # 提示并获取客户的性别
    new_sex = input('请输入新客户的性别:')
    # 提示并获取客户的手机号
    new_age = input('请输入新客户的年龄:')
    new_info = dict()
    new_info['name'] = new_name
    new_info['sex'] = new_sex
    new_info['age'] = new_age
    cust_info.append(new_info)

# 定义删除客户信息的函数
def del_cust_info(custdent):
    del_num = int(input('请输入要删除的序号：')) - 1
    if del_num in range(0,len(custdent)):
        del custdent[del_num]
    else:
        print('数据不存在')

# 定义修改客户信息的函数，具体代码如下：
def modify_cust_info():
    if len(cust_info) !=0:
        cust_id = int(input('请输入要修改客户的序号:'))
        new_name = input('请输入要修改客户的姓名:')
        new_sex = input('请输入要修改客户的性别:(男/女)')
        new_age = input('请输入要修改客户的年龄:')
        cust_info[cust_id - 1]['name'] = new_name
        cust_info[cust_id - 1]['sex'] = new_sex
        cust_info[cust_id - 1]['age'] = new_age
    else:
        print('客户信息表为空')

# 定义显示客户信息的函数
def show_cust_info():
    print('客户的信息如下：')
    print('=' * 30)
    print('序号    姓名    性别    年龄')
    i = 1
    for tempInfo in cust_info:
        print("%d    %s    %s    %s" %
              (i, tempInfo['name'], tempInfo['sex'], tempInfo['age']))
        i += 1


# 在main函数中执行不同的功能
def main():
    while True:
        print_menu()  # 打印菜单
        key = input("请输入功能对应的数字：")  # 获取用户输入的序号
        if key == '1':  # 添加客户信息
            add_cust_info()
        elif key == '2':  # 删除客户信息
            del_cust_info(cust_info)
        elif key == '3':  # 修改客户信息
            modify_cust_info()
        elif key == '4':  # 查看所有客户的信息
            show_cust_info()
        elif key == '0':
            quit_confirm = input('确认退出？(Yes or No):')
            if quit_confirm == 'Yes':
                break  # 跳出循环
            else:
                print('输入有误，请重新输入')


if __name__ == '__main__':
    main()
